package com.google.code.gaeom;

import com.google.appengine.api.datastore.AsyncDatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceConfig;
import com.google.code.gaeom.impl.ObjectStoreImpl;

/**
 * @author Peter Murray <gaeom@pmurray.com>
 */
public interface ObjectStore
{
	public static class Factory
	{
		public static ObjectStore create()
		{
			return new ObjectStoreImpl();
		}
	}

	void register(String kind, Class<?> type);
	
	ObjectStoreSession beginSession();

	ObjectStoreSession beginSession(DatastoreServiceConfig config);
	
	ObjectStoreSession beginSession(AsyncDatastoreService service);
}
